# 作者: 王道 龙哥
# 2023年02月22日11时24分11秒

# 列表推导式：用来快速地生成列表。
# 好处：代码比较短
# 坏处：可读性差
#
# [元素表达式 if(条件)  else  for 变量 in 迭代对象 ]
# 简单使用
b = []
for i in range(10):
    b.append(i)

print(b)

a = [x for x in range(10)]
print(a)

# 2个for循环
a = [j for i in range(10) for j in range(i)]
print(a)

# 生成一个二维列表
a = [[col * row for col in range(5)] for row in range(5)]
print(a)

b = [j for x in a for j in x]  # 2维列表转1维列表
print(b)

# 只有if时，if需要放在for后
c = [x for x in range(10) if x % 2 == 0]
print(c)

# if 为真，放if前面的内容，为假，放的的else后的内容
a = [x if x % 2 == 0 else x ** 2 for x in range(10)]
print(a)